Stackdriver Trace
start() で開始、get で tracer をとれる
runInRootSpan
Tracer についてのドキュメント
Tracer は start() したときに返るやつ
Cloud Functions
公式には未対応、わりと放置されていそう
こうすると CloudFunctions でもできる
samplingRate
こういう感じでトレースのフィルタをかける
code:start
require('@google-cloud/trace-agent').start({
samplingRate: 5, // sample 5 traces per second, or at most 1 every 200 milliseconds.
ignoreMethods: 'options' // ignore requests with OPTIONS method (case-insensitive). });
// ...
同時実行数が多い時に1秒窓の先頭側に偏ったりしないのかな?
shouldTrace でトレースするかどうかを返す
runInRootSpan 内でチェックして記録するかどうか決めている
権限付与
service account の credential を渡さなくても Cloud Function の invoker(と思われるやつ)に付与したらうまくいかないかな?
→ だめそう
https://gyazo.com/26b540ba6df0ca4475f26009c1af03d6
https://gyazo.com/6e20da99e3f4a688b6daddf36acc3985
素直に service account を払い出して → Cloud IAM start 時に渡す code:tart.js
require("@google-cloud/trace-agent").start({
projectId,
keyFilename: './key.json'
});